﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL_SIGEE;
using BE_SIGEE;
using System.Data;

namespace SIGEE_v0._1.Asistencia
{
    public partial class Registrar_Asistencia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CargaInicial();
            }
        }

        protected void BtnBuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                int valido = validaasistencia();

                if (valido == 0)
                {
                    return;
                }

                BL_Asistencias obj = new BL_Asistencias();

                string fecha = txtFecha.Text;
                int id_asignatura = Convert.ToInt32(ddlAsignatura.SelectedValue);

                foreach (GridViewRow row in GVWAsistencia.Rows)
                {
                    int id_alumno = Convert.ToInt32(row.Cells[0].Text);

                    RadioButton rd = new RadioButton();
                    rd = (RadioButton)row.FindControl("chkAsistio");

                    RadioButton rd1 = new RadioButton();
                    rd1 = (RadioButton)row.FindControl("chkFalta");

                    RadioButton rd2 = new RadioButton();
                    rd2 = (RadioButton)row.FindControl("chkTardanza");

                    Boolean tardanza = rd2.Checked;
                    Boolean asistencia = rd.Checked;
                    Boolean falta = rd1.Checked;

                    obj.RegistrarAsistencia(fecha, id_alumno, id_asignatura, tardanza, asistencia, falta);
                }

                

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Alerta", "alert('Se registro su asistencia correctamente');", true);
                CargaInicial();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public int validaasistencia()
        {
            foreach (GridViewRow row in GVWAsistencia.Rows)
            {
                RadioButton rd= new RadioButton();
                rd = (RadioButton)row.FindControl("chkAsistio");

                RadioButton rd1 = new RadioButton();
                rd1 = (RadioButton)row.FindControl("chkFalta");

                RadioButton rd2 = new RadioButton();
                rd2 = (RadioButton)row.FindControl("chkTardanza");

                string nombre = row.Cells[1].Text.ToString();
                Boolean tardanza = rd2.Checked;
                Boolean asistencia = rd.Checked;
                Boolean falta = rd1.Checked;

                if (tardanza == false && asistencia == false && falta == false)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Alerta", "alert('Valide el registro de asistencia para el alumno: " + nombre+ "');", true);
                    return 0;
                }
            }
            return 1;
        }

        protected void BtnNuevo_Click(object sender, ImageClickEventArgs e)
        {
            CargaInicial();
        }

        public void CargaInicial()
        {
            BL_Asistencias obj = new BL_Asistencias();

            ddlSeccion.Enabled = false;
            ddlAsignatura.Enabled = false;
            txtFecha.Enabled = false;
            imgbtn_calendario.Enabled = false;

            txtFecha.Text = string.Empty;

            CargarCombo(ddlGrado, obj.ListaGrado(), "Nombre_Grado", "Id_Grado");

            int id_grado = Convert.ToInt32(ddlGrado.SelectedValue);

            CargarCombo(ddlSeccion, obj.ListaSeccion(id_grado), "Nombre_Seccion", "Id_Seccion");


            int id_seccion = Convert.ToInt32(ddlSeccion.SelectedValue);

            CargarCombo(ddlAsignatura, obj.ListaAsignatura(id_seccion), "Nombre_Asignatura", "Id_Asignatura");

            GVWAsistencia.DataSource = null;
            GVWAsistencia.DataBind();
        }

        public static void CargarCombo(DropDownList combo, DataTable dt, String text, String value)
        {
            try
            {
                DataRow row;
                DataTable dtm;
                dtm = dt.Clone();
                row = dtm.NewRow();
                row[text] = "::.SELECCIONE.::";
                row[value] = "0";
                dtm.Rows.Add(row);
                foreach (DataRow item in dt.Rows)
                {
                    row = dtm.NewRow();
                    row[text] = item[text];
                    row[value] = item[value];
                    dtm.Rows.Add(row);
                }
                combo.DataSource = dtm;
                combo.DataTextField = text;
                combo.DataValueField = value;
                combo.DataBind();
            }
            catch (Exception ex) { throw ex; }
        }

        protected void ddlGrado_SelectedIndexChanged(object sender, EventArgs e)
        {
            BL_Asistencias obj = new BL_Asistencias();
            int id_grado = Convert.ToInt32(ddlGrado.SelectedValue);

            CargarCombo(ddlSeccion, obj.ListaSeccion(id_grado), "Nombre_Seccion", "Id_Seccion");

            ddlSeccion.Enabled = true;
        }

        protected void ddlSeccion_SelectedIndexChanged(object sender, EventArgs e)
        {
            BL_Asistencias obj = new BL_Asistencias();
            int id_seccion = Convert.ToInt32(ddlSeccion.SelectedValue);

            CargarCombo(ddlAsignatura, obj.ListaAsignatura(id_seccion), "Nombre_Asignatura", "Id_Asignatura");

            GVWAsistencia.DataSource = obj.ListaAlumnos(id_seccion);
            GVWAsistencia.DataBind();

            ddlAsignatura.Enabled = true;
            txtFecha.Enabled = true;
            imgbtn_calendario.Enabled = true;
        }

    }
}